package van.planifolia.work2;

import van.planifolia.ListConstant;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 * Created by Intellij IDEA<br>
 * 在这我会演示流终止的一些列操作
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/6 16:47
 */
public class EndOperation {
    public static void main(String[] args) {
        // 在这我会分别演示foreach，find系列，match系列，reduce，以及聚合系列操作
        List<Integer> integerList = new ArrayList<>();
        integerList.add(1);
        integerList.add(19);
        integerList.add(-18);
        integerList.add(199);
        integerList.add(16);
        // 首先是findFirst
        System.out.println(integerList.stream().findFirst());
        // 并行流findAny
        System.out.println(integerList.parallelStream().findAny());
        // matchAll匹配全部
        System.out.println(integerList.stream().allMatch(integer -> integer > 19));
        // matchAny 匹配任意
        System.out.println(integerList.stream().anyMatch(integer -> integer > 18));
        // reduce求和
        System.out.println(integerList.stream().reduce((e1, e2) -> e1 += e2));
        // 聚合求数量，求最值，求总数
        System.out.println(integerList.stream().max(Comparator.comparingInt(Integer::intValue)));
        System.out.println(integerList.stream().count());
    }
}
